package com.org.javabody.Java_to_Oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Scanner;



public class Java_to_Oracle {
	
	public Java_to_Oracle() {
		System.out.println("以下测试数据库的查询");
	}
	
	public HashMap searchAc01(String aac001) throws Exception {//动态执行的方式

		HashMap map = new HashMap();
		Connection conn = null;
		PreparedStatement pstmt = null;  
		ResultSet rs = null;
		try {
			conn = DBSession.getConnection();
			pstmt = conn.prepareStatement("SELECT aac001, aac002, aac003,aae135, f_getCodename('AAC004',aac004,null) aac004 FROM Ac01 where aac001=?") ;
			pstmt.setString(1,aac001);
			rs = pstmt.executeQuery();
			while(rs.next()){ 
				String aac001_s = rs.getString(1) ; // 此方法比较高效 

				String aac002_s = rs.getString(2) ; // 此方法比较高效 

				String aac003_s = rs.getString(3) ; // 此方法比较高效 

				String aae135_s = rs.getString(4) ; // 此方法比较高效 

				String aac004_s = rs.getString(5) ; // 此方法比较高效 

				map.put("aac001", aac001_s);
				map.put("aac002", aac002_s);
				map.put("aac003", aac003_s);
				map.put("aae135", aae135_s);
				map.put("aac004", aac004_s);			
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block


			System.out.println("数据库语句查询失败");
			e.printStackTrace();
		}
		if(rs != null){ // 关闭记录集 

			try{ 
				rs.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		} 
		if(pstmt != null){ // 关闭声明 

			try{ 
				pstmt.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		} 
		if(conn != null){ // 关闭连接对象 

			try{ 
				conn.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		} 
		return map;
	}

	public HashMap queryAc01(String aac001) throws Exception {//静态执行的方式

		HashMap map = new HashMap();
		Connection conn = null;
		Statement pstmt = null; 
		ResultSet rs = null;
		String sql = "SELECT aac001, aac002, aac003,aae135, f_getCodename('AAC004',aac004,null) aac004 FROM Ac01 where aac001='"+aac001+"'";
		try {
			conn = DBSession.getConnection();
			pstmt = conn.createStatement();
			rs= pstmt.executeQuery(sql);
			while(rs.next()){ 
				String aac001_s = rs.getString(1) ; // 此方法比较高效 

				String aac002_s = rs.getString(2) ; // 此方法比较高效 

				String aac003_s = rs.getString(3) ; // 此方法比较高效 

				String aae135_s = rs.getString(4) ; // 此方法比较高效 

				String aac004_s = rs.getString(5) ; // 此方法比较高效 

				map.put("aac001", aac001_s);
				map.put("aac002", aac002_s);
				map.put("aac003", aac003_s);
				map.put("aae135", aae135_s);
				map.put("aac004", aac004_s);			
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block


			System.out.println("数据库语句查询失败");
			e.printStackTrace();
		}
		if(rs != null){ // 关闭记录集 

			try{ 
				rs.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		} 
		if(pstmt != null){ // 关闭声明 

			try{ 
				pstmt.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		} 
		if(conn != null){ // 关闭连接对象 

			try{ 
				conn.close() ; 
			}catch(SQLException e){ 
				e.printStackTrace() ; 
			} 
		}
		return map;
	}
	
	public void print() throws Exception {
		Scanner input=new Scanner(System.in);//创建一个键盘扫描类对象

		System.out.print("请您输入内容(按回车结束):");
		 String per=input.next();  //输入字符串型

		HashMap map = searchAc01(per);
		if(map==null||map.isEmpty()) {
				System.out.println("找不到对应的数据");						
		} else {
			System.out.println(map.get("aac001")+"|"+map.get("aac002")+"|"+map.get("aac003")+"|"+map.get("aae135")+"|"+map.get("aac004"));
		}
	}
	
	public void output() throws Exception {
		Scanner input=new Scanner(System.in);//创建一个键盘扫描类对象

		System.out.print("请您输入内容(按回车结束):");
		String per=input.next();  //输入字符串型

		HashMap map = queryAc01(per);
		if(map==null||map.isEmpty()) {
			System.out.println("找不到对应的数据");						
		} else {
			System.out.println(map.get("aac001")+"|"+map.get("aac002")+"|"+map.get("aac003")+"|"+map.get("aae135")+"|"+map.get("aac004"));
		}
	}
	
	public static void main(String[] args) throws Exception {
		Java_to_Oracle js = new Java_to_Oracle();
		js.print();
		js.output();
	}

}